package com.huaxin.common.Deprecated;

import android.content.Context;
import android.view.View;

import com.huaxin.common.BaseActivity;

/**
 * Created by hebing on 2016/3/30.
 * 定义的公共界面抽象的接口
 */
public interface BaseImp {

    /**
     * 获取当前界面的ID
     * 如果你打算重写它：以下二点请务必注意：
     * 1.后续的所有功能和实现都需要你自己来完成
     * 2.重新定义的布局文件请不要和默认的同名，否则会导致编译错误/运行时异常
     *
     * @return the id of view
     */
    int getContentViewId();

    /**
     * 初始化界面的元素
     * more info see:
     * {@link BaseActivity#onCreate}
     */
    void initView();

    /**
     * 初始化界面的数据
     * more info see:
     * {@link BaseActivity#onCreate}
     */
    void initData();

    /**
     * 初始化view的抽象方法，根据指定的parent以及view的id来初始化该view
     *
     * @param parent 可能为空，为空时从contentView寻找
     * @param id     初始化view的id
     */
    View getView(View parent, int id);

    /**
     * 初始化view的抽象方法
     * Over ride method
     * {@link BaseImp#initView}
     *
     * @param id 初始化view的id
     */
    View getView(int id);

    /**
     * 返回当前界面的Context
     *
     * @return
     */
    Context context();
}
